package edu.udo.sopra10.chaturaji.entities.pieces;

import static edu.udo.sopra10.chaturaji.util.ExceptionUtil.assertNotNull;
import static java.util.Collections.emptyList;

import java.util.Collection;

import edu.udo.sopra10.chaturaji.entities.Player;
import edu.udo.sopra10.chaturaji.entities.Square;
import edu.udo.sopra10.chaturaji.entities.coordinates.Position;

/**
 * Dummy piece that has no possible movement, to be used as a placeholder in
 * calculations.
 * 
 * @author Patrick Westerhoff
 */
public final class DummyPiece extends Piece
{
	/**
	 * Constructs a new DummyPiece with the given owner on the given square.
	 * 
	 * @param owner the player who owns the piece.
	 * @param square the square this piece is placed on.
	 */
	public DummyPiece ( final Player owner, final Square square )
	{
		super( (byte) 0, owner, square );
		this.pieceValue = 0;
	}
	
	@Override
	public Actions getPossibleActions ( final Square[][] board, final Position currentPosition )
	{
		assertNotNull( board, "board" );
		assertNotNull( currentPosition, "currentPosition" );
		
		final Collection<Position> possibleMoves = emptyList();
		final Collection<Position> possibleCaptures = emptyList();
		final Collection<Position> possiblePawnPromotions = emptyList();
		
		return ( new Actions( possibleMoves, possibleCaptures, null, possiblePawnPromotions ) );
	}
}